#ifndef FUNCIONESCOMUNES_H_
#define FUNCIONESCOMUNES_H_

#define	ARCHIVO_FIFO	"/tmp/archivo_fifo"

#include <malloc.h>
#include <stdio.h>
#include <string.h>

using namespace std;

class FuncionesComunes {

public:
	static string ConvertirAString(int numero) {
		stringstream ss;
		ss << numero;
		return ss.str();
	}
	static char * ConvertirACharPointer(string cadena) {
		char* pch = (char*) malloc(sizeof(char) * (cadena.length() + 1));
		strcpy(pch, cadena.c_str());
		return pch;
	}
	static string GetIdAbrirCanal(int pid, string nickname) {
		return "0" + FuncionesComunes::ConvertirAString(pid) + Separador + ARCHIVO_FIFO + Separador + nickname;
	}
	static string GetIdCerrarCanal(int pid, string nickname) {
		return "1" + FuncionesComunes::ConvertirAString(pid) + Separador + ARCHIVO_FIFO + Separador + nickname;
	}

	static string GedIdCanalServidor() {
		return ARCHIVO_FIFO;
	}

	static string GetIdEnviarMensaje(int pid, string nickname){
		return  FuncionesComunes::ConvertirAString(pid)  + Separador;
	}

	static string GetIdEscribirLog(int pid, string nickname){
		return  FuncionesComunes::ConvertirAString(pid)  + Separador + nickname;
	}
	static string GetNombreLog(){
		return "./files/concuconversation.log";
	}
	static const char Separador = '_';

};

#endif /* FUNCIONESCOMUNES_H_ */
